package TDA_Lista;

/**Clase generica Node, en este caso introduciendo la interface Position.
 * Cada nodo contiene un elemento de tipo generico E, y mantiene un enlace
 * con otro nodo al cual se le llamara next. */
public class Node<E> implements Position<E> {
	//Variables de instancia
	private E element;
	private Node<E> next;
	
	/**Crea un nodo con elemento y nodo siguiente. 
	 * @param E e: elemento del nodo.
	 * @param Node<E> n: referencia al nodo siguiente.*/
	public Node(E e, Node<E> n){
		next = n;
		element = e;
	}
	
	//Metodos de acceso
	/**Retorna el elemento del nodo.
	 * @return el elemento del nodo. */
	public E element(){
		return element;
	}
	
	/**Retorna el nodo siguiente al nodo.
	 * @return la referencia al nodo siguiente. */
	public Node<E> getNext(){
		return next;
	}
	
	//Metodos de modificacion
	/**Modifica el elemento del nodo.
	 * @param E e: elemento que quiero insertar en el nodo. */
	public void setElement(E e){
		element = e;
	}
	
	/**Modifica el nodo siguiente al nodo. 
	 * @param Node<E> n: referencia al nodo que quiero insertar.*/
	public void setNext(Node<E> n){
		next = n;
	}
	
}